<html>
<head><meta charset="utf-8"><title>meeting 2021-03-16 · wg-traits · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/index.html">wg-traits</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html">meeting 2021-03-16</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="230528406"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230528406" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230528406">(Mar 16 2021 at 15:05)</a>:</h4>
<p>Howdy all. Because of the time shift in the US, just wanted to make sure everyone's aware that we're meeting at <time datetime="2021-03-16T20:00:00Z">2021-03-16T16:00:00-04:00</time></p>



<a name="230580034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230580034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230580034">(Mar 16 2021 at 19:54)</a>:</h4>
<p>Wow, it's that time of year again? How time has flown</p>



<a name="230580085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230580085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230580085">(Mar 16 2021 at 19:54)</a>:</h4>
<p>Oh don't remind me</p>



<a name="230580197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230580197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230580197">(Mar 16 2021 at 19:55)</a>:</h4>
<p>For those who don't remember, today we're discussing lazy norm in rustc</p>



<a name="230580216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230580216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230580216">(Mar 16 2021 at 19:55)</a>:</h4>
<p><span class="user-mention" data-user-id="116118">@Matthew Jasper</span> had some notes <a href="https://gist.github.com/matthewjasper/358245b033a1b7bd158acfe0c08d0d09">here</a></p>



<a name="230581127"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581127" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581127">(Mar 16 2021 at 20:01)</a>:</h4>
<p>Hi <span class="user-group-mention" data-user-group-id="692">@WG-traits</span> meeting time</p>



<a name="230581387"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581387" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581387">(Mar 16 2021 at 20:02)</a>:</h4>
<p>Oof <span class="user-mention" data-user-id="116009">@nikomatsakis</span> isn't here</p>



<a name="230581397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581397">(Mar 16 2021 at 20:02)</a>:</h4>
<p>I am</p>



<a name="230581404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581404">(Mar 16 2021 at 20:02)</a>:</h4>
<p>oh hi</p>



<a name="230581482"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581482" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581482">(Mar 16 2021 at 20:03)</a>:</h4>
<p>It shows you as away <span class="user-mention" data-user-id="116009">@nikomatsakis</span> <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="230581495"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581495" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581495">(Mar 16 2021 at 20:03)</a>:</h4>
<p>oh, I have no idea what that means</p>



<a name="230581518"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581518" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581518">(Mar 16 2021 at 20:03)</a>:</h4>
<p>I wasn't aware there was even a notion of 'away' in zulip :)</p>



<a name="230581534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Léo Lanteri Thauvin <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581534">(Mar 16 2021 at 20:03)</a>:</h4>
<p>(Appears as active for me, maybe you need to refresh?)</p>



<a name="230581541"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581541" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581541">(Mar 16 2021 at 20:03)</a>:</h4>
<p>I refreshed and it updated</p>



<a name="230581607"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581607" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581607">(Mar 16 2021 at 20:04)</a>:</h4>
<p>I was afk for a few minutes, so maybe that's why :)</p>



<a name="230581658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581658">(Mar 16 2021 at 20:04)</a>:</h4>
<p>Sorry, I just spent like two hours trying to get github actions to upload some rust build artifacts and I'm a bit frizzled</p>



<a name="230581706"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581706" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581706">(Mar 16 2021 at 20:04)</a>:</h4>
<p>Anyways, any annoucements or other good news?</p>



<a name="230581788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581788">(Mar 16 2021 at 20:05)</a>:</h4>
<p>Not many on my part. I spent some time thinking about coinduction</p>



<a name="230581822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581822">(Mar 16 2021 at 20:05)</a>:</h4>
<p>it's been hard for me to carve out the time i need for that PR though</p>



<a name="230581916"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581916" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581916">(Mar 16 2021 at 20:06)</a>:</h4>
<p>There's a PR up to prepare the move of types in rustc: <a href="https://github.com/rust-lang/rust/issues/83142">#83142</a></p>



<a name="230581922"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581922" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581922">(Mar 16 2021 at 20:06)</a>:</h4>
<p><span class="user-mention" data-user-id="283967">@Zahari Dichev</span> (and <span class="user-mention" data-user-id="125131">@detrumi</span>) made a PR for some rustc_type_ir changes: <a href="https://github.com/rust-lang/rust/issues/83142">#83142</a></p>



<a name="230581942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230581942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230581942">(Mar 16 2021 at 20:06)</a>:</h4>
<p>beat me</p>



<a name="230582057"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582057" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582057">(Mar 16 2021 at 20:07)</a>:</h4>
<p>So that's moving along nicely</p>



<a name="230582084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582084">(Mar 16 2021 at 20:07)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/issues/76814">#76814</a> and <a href="https://github.com/rust-lang/rust/issues/82743">#82743</a> are "done" and awaiting <span class="user-mention" data-user-id="116009">@nikomatsakis</span>'s review :P</p>



<a name="230582117"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582117" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582117">(Mar 16 2021 at 20:07)</a>:</h4>
<p><span class="user-mention silent" data-user-id="125131">detrumi</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-16/near/230582057">said</a>:</p>
<blockquote>
<p>So that's moving along nicely</p>
</blockquote>
<p>Yeah, I'm quite excited</p>



<a name="230582287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582287">(Mar 16 2021 at 20:08)</a>:</h4>
<p>I also tried to spend some time this weekend looking into the Chalk hangs with closures (<a href="https://github.com/rust-lang/chalk/issues/688">chalk#688</a>) and got basically nowhere</p>



<a name="230582299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582299">(Mar 16 2021 at 20:08)</a>:</h4>
<p>wasn't able to repro the issue at all</p>



<a name="230582347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582347">(Mar 16 2021 at 20:08)</a>:</h4>
<p>I was just reviewing <a href="https://github.com/rust-lang/rust/issues/82743">#82743</a>, <span class="user-mention" data-user-id="232957">@Jack Huey</span></p>



<a name="230582431"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582431" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582431">(Mar 16 2021 at 20:09)</a>:</h4>
<p>honestly, considering changing how we handle closure substs in chalk-integration to match how rust-analyzer/rustc does it; maybe that would unveil the problem</p>



<a name="230582627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582627">(Mar 16 2021 at 20:10)</a>:</h4>
<p>Since rust-analyzer is slowly moving to chalk types, that sounds like a good idea anyways</p>



<a name="230582662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> detrumi <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582662">(Mar 16 2021 at 20:10)</a>:</h4>
<p>or at least, for one of the two sides to change</p>



<a name="230582709"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582709" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582709">(Mar 16 2021 at 20:10)</a>:</h4>
<p>what is the difference between the two?</p>



<a name="230582717"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582717" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582717">(Mar 16 2021 at 20:10)</a>:</h4>
<p>Well, I mean, theoretically it <em>shouldn't</em> matter</p>



<a name="230582793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582793">(Mar 16 2021 at 20:11)</a>:</h4>
<p>So, in rust-analyzer/rustc, closure substs are like &lt;T, U, V, fnsig, CK, upvars&gt;</p>



<a name="230582836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582836">(Mar 16 2021 at 20:11)</a>:</h4>
<p>(in rust-analyzer it's only &lt;fnsig&gt;)</p>



<a name="230582925"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230582925" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230582925">(Mar 16 2021 at 20:12)</a>:</h4>
<p>In chalk-integration it's only &lt;T, U, V&gt; and fnsig, CK, and upvars are stored separately</p>



<a name="230583010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583010">(Mar 16 2021 at 20:12)</a>:</h4>
<p>I see</p>



<a name="230583029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583029">(Mar 16 2021 at 20:12)</a>:</h4>
<p>I imagine the issue is caused by something like we're trying to generalize the <code>FnSig</code></p>



<a name="230583056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583056">(Mar 16 2021 at 20:12)</a>:</h4>
<p>but I haven't dug into <em>why</em> that's happening</p>



<a name="230583268"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583268" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583268">(Mar 16 2021 at 20:14)</a>:</h4>
<p>I'm not sure how rustc represents the function <code>fn&lt;T&gt;(&amp;'static T)</code> in the <code>fnsig</code> portion</p>



<a name="230583316"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583316" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583316">(Mar 16 2021 at 20:14)</a>:</h4>
<p>we don't have functions generic over types in rustc?</p>



<a name="230583324"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583324" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583324">(Mar 16 2021 at 20:14)</a>:</h4>
<p>I guess, <code>T</code> is just a <code>Param</code></p>



<a name="230583345"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583345" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583345">(Mar 16 2021 at 20:14)</a>:</h4>
<p>right</p>



<a name="230583351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583351">(Mar 16 2021 at 20:14)</a>:</h4>
<p>(or closures)</p>



<a name="230583397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583397">(Mar 16 2021 at 20:15)</a>:</h4>
<p>should we talk about lazy norm?</p>



<a name="230583408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583408">(Mar 16 2021 at 20:15)</a>:</h4>
<p>yes</p>



<a name="230583434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583434">(Mar 16 2021 at 20:15)</a>:</h4>
<p>(I'll keep digging into this whenever I get time to)</p>



<a name="230583475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583475">(Mar 16 2021 at 20:15)</a>:</h4>
<p>So, did anyone get a chance to look over <span class="user-mention" data-user-id="116118">@Matthew Jasper</span>'s notes?</p>



<a name="230583488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583488">(Mar 16 2021 at 20:15)</a>:</h4>
<p>I was reading the gist</p>



<a name="230583531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583531">(Mar 16 2021 at 20:15)</a>:</h4>
<p>Some portion of them appear to be changes that I think would be (potentially) addressed by a shift to a more chalk-like model</p>



<a name="230583545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583545">(Mar 16 2021 at 20:16)</a>:</h4>
<p>Some of them not so much :)</p>



<a name="230583584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583584">(Mar 16 2021 at 20:16)</a>:</h4>
<p><a href="https://gist.github.com/matthewjasper/358245b033a1b7bd158acfe0c08d0d09">https://gist.github.com/matthewjasper/358245b033a1b7bd158acfe0c08d0d09</a></p>



<a name="230583644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583644">(Mar 16 2021 at 20:16)</a>:</h4>
<p>So "Ambiguity in where clauses" is something that Chalk avoids.</p>



<a name="230583732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583732">(Mar 16 2021 at 20:17)</a>:</h4>
<p>yes, also <em>potentially</em> coherence, we still haven't really talked about what coherence means in a chalk-like universe in that much depth</p>



<a name="230583750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583750">(Mar 16 2021 at 20:17)</a>:</h4>
<p>"Coherence" probably needs some experimentation, but doesn't seem to be unsolvable.</p>



<a name="230583809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583809">(Mar 16 2021 at 20:17)</a>:</h4>
<p>This just reminds me of <a href="https://github.com/rust-lang/chalk/issues/234">chalk#234</a></p>



<a name="230583851"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583851" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583851">(Mar 16 2021 at 20:18)</a>:</h4>
<p>It's basically, "we can't use the existing code unchanged".</p>



<a name="230583887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583887">(Mar 16 2021 at 20:18)</a>:</h4>
<p>why don' we go point by point?</p>



<a name="230583944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583944">(Mar 16 2021 at 20:18)</a>:</h4>
<blockquote>
<p>Ambiguity in where clauses</p>
</blockquote>



<a name="230583969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583969">(Mar 16 2021 at 20:18)</a>:</h4>
<p>so, chalk wouldn't be upset by the duplicate bounds;</p>



<a name="230583999"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230583999" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230583999">(Mar 16 2021 at 20:18)</a>:</h4>
<p>of course it'd be more efficient if it didn't waste time trying to prove them both</p>



<a name="230584115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584115">(Mar 16 2021 at 20:19)</a>:</h4>
<p>Right</p>



<a name="230584128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584128">(Mar 16 2021 at 20:19)</a>:</h4>
<p>I don't think that there are that many cases like this to really be concerned though.</p>



<a name="230584141"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584141" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584141">(Mar 16 2021 at 20:19)</a>:</h4>
<p>I agree</p>



<a name="230584153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584153">(Mar 16 2021 at 20:19)</a>:</h4>
<p>at that point it's just an optimization</p>



<a name="230584231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584231">(Mar 16 2021 at 20:20)</a>:</h4>
<p>if we get to the point that we are tuning performance I'll be very happy :)</p>



<a name="230584241"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584241" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584241">(Mar 16 2021 at 20:20)</a>:</h4>
<h1>Type outlives bounds and normalization</h1>



<a name="230584259"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584259" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584259">(Mar 16 2021 at 20:20)</a>:</h4>
<p>Indeed</p>



<a name="230584266"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584266" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584266">(Mar 16 2021 at 20:20)</a>:</h4>
<p>I didn't quite understand this</p>



<a name="230584290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584290">(Mar 16 2021 at 20:20)</a>:</h4>
<blockquote>
<p>Given a where clause like: <code>&lt;&lt;X as Y&gt;::Z as A&gt;::B: 'a</code> we need to normalize<br>
this eagerly. Region checking runs too late to compare types with relate, and<br>
instead has to use "syntatic equality" (<code>==</code>). This means that we have to<br>
normalize this before region checking.</p>
</blockquote>



<a name="230584426"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584426" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584426">(Mar 16 2021 at 20:21)</a>:</h4>
<p>are you just saying that region checking, generally, can't normalize</p>



<a name="230584442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584442">(Mar 16 2021 at 20:21)</a>:</h4>
<p>Yes</p>



<a name="230584448"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584448" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584448">(Mar 16 2021 at 20:21)</a>:</h4>
<p>and by this you mean the regionck code</p>



<a name="230584457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584457">(Mar 16 2021 at 20:21)</a>:</h4>
<p>(versus, say, NLL)</p>



<a name="230584556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584556">(Mar 16 2021 at 20:22)</a>:</h4>
<p>Hmm, I'm not sure if NLL can avoid this.</p>



<a name="230584644"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584644" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584644">(Mar 16 2021 at 20:22)</a>:</h4>
<p>avoid what exactly</p>



<a name="230584646"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584646" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584646">(Mar 16 2021 at 20:22)</a>:</h4>
<p>I was going to ask if we know the types of everything by the time we get to region checking, but I imagine not</p>



<a name="230584651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584651">(Mar 16 2021 at 20:22)</a>:</h4>
<p>having to normalize?</p>



<a name="230584661"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584661" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584661">(Mar 16 2021 at 20:22)</a>:</h4>
<p>By the time it's trying to prove type outlives bounds I think that the Infcx it's usable.</p>



<a name="230584668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584668">(Mar 16 2021 at 20:22)</a>:</h4>
<p><span class="user-mention silent" data-user-id="232957">Jack Huey</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-16/near/230584646">said</a>:</p>
<blockquote>
<p>I was to ask if we know the types of everything by the time we get to region checking, but I imagine not</p>
</blockquote>
<p>we do</p>



<a name="230584707"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584707" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584707">(Mar 16 2021 at 20:23)</a>:</h4>
<p>Yes, having to normalize.</p>



<a name="230584769"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584769" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584769">(Mar 16 2021 at 20:23)</a>:</h4>
<p>I think it's expected that it has to normalize</p>



<a name="230584783"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584783" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584783">(Mar 16 2021 at 20:23)</a>:</h4>
<p>I guess what I expect is</p>



<a name="230584793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584793">(Mar 16 2021 at 20:23)</a>:</h4>
<p>And only being able to do it lazily.</p>



<a name="230584808"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584808" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584808">(Mar 16 2021 at 20:23)</a>:</h4>
<p>well, this touches on the question of how outlives should work in chalk to begin with :)</p>



<a name="230584904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230584904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230584904">(Mar 16 2021 at 20:24)</a>:</h4>
<p>but what i imagine is that chalk the job of emitting, as part of its region constraints, outlives bounds that are fully normalized</p>



<a name="230585022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585022">(Mar 16 2021 at 20:24)</a>:</h4>
<p>The constaints being normalized isn't the problem. It's the predicates in the ParamEnv that also have to be normalized.</p>



<a name="230585053"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585053" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585053">(Mar 16 2021 at 20:25)</a>:</h4>
<p>(I think it also has to do some amount of work around higher-ranked things)</p>



<a name="230585277"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585277" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585277">(Mar 16 2021 at 20:26)</a>:</h4>
<p>so</p>



<a name="230585289"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585289" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585289">(Mar 16 2021 at 20:26)</a>:</h4>
<p>So, how much of a problem is it to normalize right before regionck</p>



<a name="230585294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585294">(Mar 16 2021 at 20:26)</a>:</h4>
<p>you are thinking of that code that kind of "lowers" outlives constraints into something more primitive</p>



<a name="230585334"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585334" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585334">(Mar 16 2021 at 20:27)</a>:</h4>
<p>(right?)</p>



<a name="230585410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585410">(Mar 16 2021 at 20:27)</a>:</h4>
<p>I'm thinking of the code that sees it has to prove <code>&lt;T as X&gt;::A: 'a</code> and checks the ParamEnv for a matching predicate.</p>



<a name="230585578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585578">(Mar 16 2021 at 20:28)</a>:</h4>
<p>ok</p>



<a name="230585621"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585621" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585621">(Mar 16 2021 at 20:28)</a>:</h4>
<p>anyway normalizing doesn't seem so bad</p>



<a name="230585622"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585622" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585622">(Mar 16 2021 at 20:28)</a>:</h4>
<p>We can normlize before regionck, but we get more cycle issues.</p>



<a name="230585640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230585640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230585640">(Mar 16 2021 at 20:29)</a>:</h4>
<p>elaborate?</p>



<a name="230586010"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586010" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586010">(Mar 16 2021 at 20:31)</a>:</h4>
<p>Maybe we should move on for now?</p>



<a name="230586037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586037">(Mar 16 2021 at 20:31)</a>:</h4>
<p>Well, I'm not sure if there are any cases this matters today.</p>



<a name="230586120"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586120" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586120">(Mar 16 2021 at 20:31)</a>:</h4>
<p>(i.e. without new syntax/features)</p>



<a name="230586137"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586137" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586137">(Mar 16 2021 at 20:31)</a>:</h4>
<p>agreed with moving on--</p>



<a name="230586205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586205">(Mar 16 2021 at 20:32)</a>:</h4>
<p>but this is a good thing to dig more into when we talk about how to prove outlives</p>



<a name="230586294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586294">(Mar 16 2021 at 20:32)</a>:</h4>
<h3>Coherence</h3>



<a name="230586305"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586305" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586305">(Mar 16 2021 at 20:32)</a>:</h4>
<p>but i think we kind of already said it --</p>



<a name="230586368"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586368" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586368">(Mar 16 2021 at 20:33)</a>:</h4>
<p>in my ideal world, we would model coherence as a set of logical predicates we have to prove, much as <span class="user-mention" data-user-id="117350">@Sunjay Varma</span> did</p>



<a name="230586386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586386">(Mar 16 2021 at 20:33)</a>:</h4>
<p>the current code for handling coherence is rather more special</p>



<a name="230586424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586424">(Mar 16 2021 at 20:33)</a>:</h4>
<p>i'm not sure how well the logic that <span class="user-mention silent" data-user-id="117350">Sunjay Varma</span> wrote up will really compare, but if we did that, I think this is kind of a non-issue</p>



<a name="230586483"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586483" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586483">(Mar 16 2021 at 20:34)</a>:</h4>
<p>Special how?</p>



<a name="230586550"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586550" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586550">(Mar 16 2021 at 20:34)</a>:</h4>
<p>it operates in some special modes, and it does things like walk over the list of obligations and check if any of them (individually) are non-provable</p>



<a name="230586559"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586559" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586559">(Mar 16 2021 at 20:34)</a>:</h4>
<p>so it's not just asking the solver to prove something</p>



<a name="230586603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586603">(Mar 16 2021 at 20:34)</a>:</h4>
<p>it's like some higher-order logic that drives the solver in a particular way</p>



<a name="230586867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586867">(Mar 16 2021 at 20:36)</a>:</h4>
<p>gotcha</p>



<a name="230586939"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586939" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586939">(Mar 16 2021 at 20:37)</a>:</h4>
<p>Moving on?</p>



<a name="230586942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230586942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230586942">(Mar 16 2021 at 20:37)</a>:</h4>
<h1><code>can_eq</code> and <code>can_sub</code></h1>



<a name="230587004"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587004" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587004">(Mar 16 2021 at 20:37)</a>:</h4>
<p>eah so</p>



<a name="230587045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587045">(Mar 16 2021 at 20:38)</a>:</h4>
<p>These functions make me sad.</p>



<a name="230587056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587056">(Mar 16 2021 at 20:38)</a>:</h4>
<p>yes :)</p>



<a name="230587071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587071">(Mar 16 2021 at 20:38)</a>:</h4>
<p>I'm wondering how many uses of them can be mremoved</p>



<a name="230587228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587228">(Mar 16 2021 at 20:39)</a>:</h4>
<p>I think it's all diagnostics.</p>



<a name="230587347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587347">(Mar 16 2021 at 20:40)</a>:</h4>
<p>really?</p>



<a name="230587351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587351">(Mar 16 2021 at 20:40)</a>:</h4>
<p>Which is why I'm tempted to say that they return false if we would have to normalize.</p>



<a name="230587356"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587356" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587356">(Mar 16 2021 at 20:40)</a>:</h4>
<p>that'd be good if true</p>



<a name="230587506"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587506" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587506">(Mar 16 2021 at 20:41)</a>:</h4>
<p>I am wondering</p>



<a name="230587536"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587536" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587536">(Mar 16 2021 at 20:41)</a>:</h4>
<p>I guess I'm wondering if there is a PR trying to refactor some of those away</p>



<a name="230587545"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587545" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587545">(Mar 16 2021 at 20:41)</a>:</h4>
<p>It's used in rustc_mir</p>



<a name="230587570"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587570" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587570">(Mar 16 2021 at 20:41)</a>:</h4>
<p>I feel like there are probably some prs to be written that try to 'prep' for chalk</p>



<a name="230587579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587579">(Mar 16 2021 at 20:41)</a>:</h4>
<p><code>equal_up_to_regions</code></p>



<a name="230587589"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587589" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587589">(Mar 16 2021 at 20:41)</a>:</h4>
<p>by removing various things that are not phrased in 'logical ways'</p>



<a name="230587606"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587606" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587606">(Mar 16 2021 at 20:41)</a>:</h4>
<p>one of them is the way we do unsize coercions</p>



<a name="230587645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587645">(Mar 16 2021 at 20:42)</a>:</h4>
<p>which terrifies me a bit =)</p>



<a name="230587651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587651">(Mar 16 2021 at 20:42)</a>:</h4>
<p>that would be decent</p>



<a name="230587673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587673">(Mar 16 2021 at 20:42)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-16/near/230587606">said</a>:</p>
<blockquote>
<p>one of them is the way we do unsize coercions</p>
</blockquote>
<p>do I want to know??</p>



<a name="230587833"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587833" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587833">(Mar 16 2021 at 20:43)</a>:</h4>
<p>well</p>



<a name="230587842"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587842" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587842">(Mar 16 2021 at 20:43)</a>:</h4>
<p>let me find the code :)</p>



<a name="230587896"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587896" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587896">(Mar 16 2021 at 20:44)</a>:</h4>
<p>it's probably not relevant for today :)</p>



<a name="230587911"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587911" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587911">(Mar 16 2021 at 20:44)</a>:</h4>
<p>so maybe just move on</p>



<a name="230587934"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587934" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587934">(Mar 16 2021 at 20:44)</a>:</h4>
<p>it's not too relevant really</p>



<a name="230587940"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587940" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587940">(Mar 16 2021 at 20:44)</a>:</h4>
<p>I should file an issue</p>



<a name="230587945"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587945" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587945">(Mar 16 2021 at 20:44)</a>:</h4>
<p>I probaly already have</p>



<a name="230587972"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587972" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587972">(Mar 16 2021 at 20:44)</a>:</h4>
<p>it'd be a good wg-traits task regardless :)</p>



<a name="230587981"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230587981" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230587981">(Mar 16 2021 at 20:44)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-16/near/230587589">said</a>:</p>
<blockquote>
<p>by removing various things that are not phrased in 'logical ways'</p>
</blockquote>
<p>but I do like this idea; we should get back to it someday</p>



<a name="230588012"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588012" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588012">(Mar 16 2021 at 20:44)</a>:</h4>
<h1>Unnormalizing</h1>



<a name="230588042"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588042" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588042">(Mar 16 2021 at 20:45)</a>:</h4>
<p>So, what is unnormalizing</p>



<a name="230588047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588047">(Mar 16 2021 at 20:45)</a>:</h4>
<p>yeah, I didn't 100%-- oh, right, I get it</p>



<a name="230588105"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588105" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588105">(Mar 16 2021 at 20:45)</a>:</h4>
<p>so the problem is this-- in chalk, right, we have two forms for associated types, the "placeholder" form and the "alias" form</p>



<a name="230588153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588153">(Mar 16 2021 at 20:45)</a>:</h4>
<p>when you unify an alias with something, you add an obliation and it may wind up being normalized to the placeholder form</p>



<a name="230588225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588225">(Mar 16 2021 at 20:46)</a>:</h4>
<p>so e.g.</p>



<a name="230588264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588264">(Mar 16 2021 at 20:46)</a>:</h4>
<div class="codehilite" data-code-language="Rust"><pre><span></span><code><span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="n">T</span>: <span class="nb">Iterator</span><span class="o">&gt;</span><span class="p">(</span><span class="n">t</span>: <span class="nc">T</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="o">..</span><span class="p">.</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">item</span>: <span class="nc">T</span>::<span class="n">Item</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">..</span><span class="p">;</span><span class="w"> </span><span class="p">}</span><span class="w"></span>
</code></pre></div>



<a name="230588307"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588307" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588307">(Mar 16 2021 at 20:46)</a>:</h4>
<p><code>&lt;T as Iterator&gt;::Item</code> there would be normalized to <code>(Iterator::Item)&lt;T&gt;</code> or whatever our notation is now</p>



<a name="230588351"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588351" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588351">(Mar 16 2021 at 20:47)</a>:</h4>
<p>but then if we monomorpize <code>foo</code> with <code>T = vec::IntoIter&lt;u32&gt;</code> or something</p>



<a name="230588400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588400">(Mar 16 2021 at 20:47)</a>:</h4>
<p>if we just substitute, we get a placeholder <code>(Iterator::Item)&lt;vec::IntoIter&lt;u32&gt;&gt;</code></p>



<a name="230588434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588434">(Mar 16 2021 at 20:47)</a>:</h4>
<p>but actually we have fresh information and we may be able to do a better normalization</p>



<a name="230588524"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588524" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588524">(Mar 16 2021 at 20:48)</a>:</h4>
<p>really this should probably just be part of substitution, oddly enough, that whenever you substitute soething into a placeholder like this, you revert it to alias form</p>



<a name="230588575"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588575" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588575">(Mar 16 2021 at 20:48)</a>:</h4>
<p>Okay, I think I'm following</p>



<a name="230588711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588711">(Mar 16 2021 at 20:49)</a>:</h4>
<p>I'm not sure if I have good reasons for it, but I'm still weirdly skeptical of the reason to split out a <code>AssociatedType</code> from an <code>Alias</code></p>



<a name="230588795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588795">(Mar 16 2021 at 20:50)</a>:</h4>
<p>do you mean to 'normalize'</p>



<a name="230588843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588843">(Mar 16 2021 at 20:50)</a>:</h4>
<p>in general I am not super keen on it but i haven't found a better alternative really</p>



<a name="230588901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588901">(Mar 16 2021 at 20:50)</a>:</h4>
<p>no, I just mean the reasoning of having <code>(Iterator::Item)&lt;T&gt;</code> vs just keeping it as <code>&lt;T as Iterator&gt;::Item</code></p>



<a name="230588954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230588954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230588954">(Mar 16 2021 at 20:51)</a>:</h4>
<p>I mean, I know we've discussed it before</p>



<a name="230589183"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589183" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589183">(Mar 16 2021 at 20:52)</a>:</h4>
<p>/me thinks</p>



<a name="230589220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589220">(Mar 16 2021 at 20:52)</a>:</h4>
<p>we certainly have</p>



<a name="230589244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589244">(Mar 16 2021 at 20:52)</a>:</h4>
<p>there is some universe where you don't <em>have</em> to have the placeholder form</p>



<a name="230589463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589463">(Mar 16 2021 at 20:54)</a>:</h4>
<p>Anyways, back on topic (we've been slow today)</p>



<a name="230589503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589503">(Mar 16 2021 at 20:54)</a>:</h4>
<p><span class="user-mention silent" data-user-id="116009">nikomatsakis</span> <a href="#narrow/stream/144729-wg-traits/topic/meeting.202021-03-16/near/230588434">said</a>:</p>
<blockquote>
<p>but actually we have fresh information and we may be able to do a better normalization</p>
</blockquote>
<p>I think this makes sense to me</p>



<a name="230589520"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589520" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589520">(Mar 16 2021 at 20:54)</a>:</h4>
<p>well, so long as this is part of monomorpizing, it doesn't seem like a big deal ultimately</p>



<a name="230589530"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589530" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589530">(Mar 16 2021 at 20:54)</a>:</h4>
<p>like we can special case it if we have to</p>



<a name="230589548"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589548" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589548">(Mar 16 2021 at 20:54)</a>:</h4>
<p>and 'reset'</p>



<a name="230589559"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589559" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589559">(Mar 16 2021 at 20:54)</a>:</h4>
<p>or we can do it as part of substitution more generally</p>



<a name="230589695"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589695" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589695">(Mar 16 2021 at 20:55)</a>:</h4>
<p>Probably, there might be some mir opts that also need some changes, but it's mostly a matter of realizing that it's required.</p>



<a name="230589781"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589781" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589781">(Mar 16 2021 at 20:56)</a>:</h4>
<p>Okay, so I'm not sure we'll make it through the list</p>



<a name="230589831"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589831" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589831">(Mar 16 2021 at 20:56)</a>:</h4>
<p>So, maybe instead, <span class="user-mention" data-user-id="116118">@Matthew Jasper</span> do you want to talk about your branch?</p>



<a name="230589860"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589860" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589860">(Mar 16 2021 at 20:56)</a>:</h4>
<p>I know it's a bit oldish at this point</p>



<a name="230589924"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589924" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589924">(Mar 16 2021 at 20:57)</a>:</h4>
<p>I don't really have a lot to say, it's old and based on some previous work. I'm not sure when I'll get back to it.</p>



<a name="230589969"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230589969" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230589969">(Mar 16 2021 at 20:57)</a>:</h4>
<p>Is it something that can be built off of? Or just needs to be restarted</p>



<a name="230590002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590002">(Mar 16 2021 at 20:57)</a>:</h4>
<p>I guess there's the matter of how to go about making something that can be merged.</p>



<a name="230590118"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590118" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590118">(Mar 16 2021 at 20:58)</a>:</h4>
<p>Hmm</p>



<a name="230590128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590128">(Mar 16 2021 at 20:58)</a>:</h4>
<p>yeah, figuring out what are the actonable transformatons that take us incrementally closer to the goal is going to be interesting</p>



<a name="230590147"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590147" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590147">(Mar 16 2021 at 20:58)</a>:</h4>
<p>but this list is good in that regards</p>



<a name="230590170"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590170" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590170">(Mar 16 2021 at 20:58)</a>:</h4>
<p>Was about to say something to that effect</p>



<a name="230590194"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590194" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590194">(Mar 16 2021 at 20:58)</a>:</h4>
<p>i.e. what should we do or think about doing next?</p>



<a name="230590198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590198">(Mar 16 2021 at 20:58)</a>:</h4>
<p>there may be items in there we can start to peel off, and certainly things like that coercion I mentioned</p>



<a name="230590201"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590201" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590201">(Mar 16 2021 at 20:58)</a>:</h4>
<p>Also should this get an MCP?</p>



<a name="230590245"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590245" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590245">(Mar 16 2021 at 20:59)</a>:</h4>
<p>I feel like we're not necessarily ready for mcp yet because we don't quite know what "this" is</p>



<a name="230590260"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590260" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590260">(Mar 16 2021 at 20:59)</a>:</h4>
<p>true</p>



<a name="230590302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590302">(Mar 16 2021 at 20:59)</a>:</h4>
<p>reworking how coherence works might be an example of something we could peel off</p>



<a name="230590321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590321">(Mar 16 2021 at 20:59)</a>:</h4>
<p>So I guess the first step is take another look at the branch to find out what the next steps here are.</p>



<a name="230590457"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590457" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590457">(Mar 16 2021 at 21:00)</a>:</h4>
<p>I'm sure a few things have changed in the year since the last commit too</p>



<a name="230590526"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590526" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590526">(Mar 16 2021 at 21:00)</a>:</h4>
<p>Just a few. <span aria-label="sweat smile" class="emoji emoji-1f605" role="img" title="sweat smile">:sweat_smile:</span></p>



<a name="230590725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590725">(Mar 16 2021 at 21:01)</a>:</h4>
<p>Well, I think today was somewhat helpful</p>



<a name="230590786"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/144729-wg-traits/topic/meeting%202021-03-16/near/230590786" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Jack Huey <a href="https://rust-lang.github.io/zulip_archive/stream/144729-wg-traits/topic/meeting.202021-03-16.html#230590786">(Mar 16 2021 at 21:02)</a>:</h4>
<p>We're past the hour, but thanks everyone for attending</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>